#pragma once
#include <vector>
#include "geo_alg.h"
#include "points.h"
#include "plane.h"
#include "box.h"
#include "line_segment.h"


GEO_ALG_BEGIN_NAMESPACE


GEO_ALG_API typedef PointBase<Point2<int>>      Point2i;
GEO_ALG_API typedef PointBase<Point2<double>>   Point2d;
GEO_ALG_API typedef PointBase<Point2<float>>    Point2f;
GEO_ALG_API typedef PointBase<Point3<double>>   Point3d;
GEO_ALG_API typedef Plane<Point3d>              Plane3d;
GEO_ALG_API typedef Box<Point2d>                Box2d;
GEO_ALG_API typedef Box<Point3d>                Box3d;
GEO_ALG_API typedef LineSegment<Point2d>        LineSegment2d;
GEO_ALG_API typedef LineSegment<Point2i>        LineSegment2i;
GEO_ALG_API typedef LineSegment<Point3d>        LineSegment3d;



typedef Point3d Vector3d;
typedef Point2d Vector2d;
typedef Point2f Vector2f;
typedef std::vector<Point3d>        Polygon3d;
typedef std::vector<Point2d>        Polygon2d;
GEO_ALG_END_NAMESPACE